package com.atguigu.network;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Demo03TCPServerBetter {

    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(8888);

        System.out.println("服务器端已就绪，等待客户端连接：");
        Socket socket = serverSocket.accept();

        // 1、读取客户端发送来的数据
        // [1]获取输入流对象（原始）
        InputStream inputStream = socket.getInputStream();

        // [2]对原始的输入流对象进行包装
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

        // [3]调用包装得到的 BufferedReader 对象的方法读取数据
        StringBuffer stringBuffer = new StringBuffer();
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            stringBuffer.append(line);
        }

        // [4]把读取到的数据打印出来
        System.out.println("服务器端接收到的数据：" + stringBuffer.toString());

        // 2、给客户端返回响应
        // [1]获取输出流对象（原始）
        OutputStream outputStream = socket.getOutputStream();

        // [2]对原始的输出流对象进行包装
        PrintStream printStream = new PrintStream(outputStream);

        // [3]把响应数据写入输出流
        printStream.print("服务器端给客户端返回的响应~~~");

        socket.close();

        serverSocket.close();
    }

}
